home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-9.10-netbook-remix-PL.iso / casper / filesystem.squashfs / usr / lib / python2.6 / repr.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2009-11-11  |  5KB  |  155 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. '''Redo the builtin repr() (representation) but with limits on most sizes.'''
  5. __all__ = [
  6.     'Repr',
  7.     'repr']
  8. import __builtin__
  9. from itertools import islice
  10.  
  11. class Repr:
  12.     
  13.     def __init__(self):
  14.         self.maxlevel = 6
  15.         self.maxtuple = 6
  16.         self.maxlist = 6
  17.         self.maxarray = 5
  18.         self.maxdict = 4
  19.         self.maxset = 6
  20.         self.maxfrozenset = 6
  21.         self.maxdeque = 6
  22.         self.maxstring = 30
  23.         self.maxlong = 40
  24.         self.maxother = 20
  25.  
  26.     
  27.     def repr(self, x):
  28.         return self.repr1(x, self.maxlevel)
  29.  
  30.     
  31.     def repr1(self, x, level):
  32.         typename = type(x).__name__
  33.         if ' ' in typename:
  34.             parts = typename.split()
  35.             typename = '_'.join(parts)
  36.         
  37.         if hasattr(self, 'repr_' + typename):
  38.             return getattr(self, 'repr_' + typename)(x, level)
  39.         s = __builtin__.repr(x)
  40.         if len(s) > self.maxother:
  41.             i = max(0, (self.maxother - 3) // 2)
  42.             j = max(0, self.maxother - 3 - i)
  43.             s = s[:i] + '...' + s[len(s) - j:]
  44.         
  45.         return s
  46.  
  47.     
  48.     def _repr_iterable(self, x, level, left, right, maxiter, trail = ''):
  49.         n = len(x)
  50.         if level <= 0 and n:
  51.             s = '...'
  52.         else:
  53.             newlevel = level - 1
  54.             repr1 = self.repr1
  55.             pieces = [ repr1(elem, newlevel) for elem in islice(x, maxiter) ]
  56.             s = ', '.join(pieces)
  57.             if n == 1 and trail:
  58.                 right = trail + right
  59.             
  60.         return '%s%s%s' % (left, s, right)
  61.  
  62.     
  63.     def repr_tuple(self, x, level):
  64.         return self._repr_iterable(x, level, '(', ')', self.maxtuple, ',')
  65.  
  66.     
  67.     def repr_list(self, x, level):
  68.         return self._repr_iterable(x, level, '[', ']', self.maxlist)
  69.  
  70.     
  71.     def repr_array(self, x, level):
  72.         header = "array('%s', [" % x.typecode
  73.         return self._repr_iterable(x, level, header, '])', self.maxarray)
  74.  
  75.     
  76.     def repr_set(self, x, level):
  77.         x = _possibly_sorted(x)
  78.         return self._repr_iterable(x, level, 'set([', '])', self.maxset)
  79.  
  80.     
  81.     def repr_frozenset(self, x, level):
  82.         x = _possibly_sorted(x)
  83.         return self._repr_iterable(x, level, 'frozenset([', '])', self.maxfrozenset)
  84.  
  85.     
  86.     def repr_deque(self, x, level):
  87.         return self._repr_iterable(x, level, 'deque([', '])', self.maxdeque)
  88.  
  89.     
  90.     def repr_dict(self, x, level):
  91.         n = len(x)
  92.         if n == 0:
  93.             return '{}'
  94.         if level <= 0:
  95.             return '{...}'
  96.         newlevel = level - 1
  97.         repr1 = self.repr1
  98.         pieces = []
  99.         for key in islice(_possibly_sorted(x), self.maxdict):
  100.             keyrepr = repr1(key, newlevel)
  101.             valrepr = repr1(x[key], newlevel)
  102.             pieces.append('%s: %s' % (keyrepr, valrepr))
  103.         
  104.         s = ', '.join(pieces)
  105.         return '{%s}' % (s,)
  106.  
  107.     
  108.     def repr_str(self, x, level):
  109.         s = __builtin__.repr(x[:self.maxstring])
  110.         if len(s) > self.maxstring:
  111.             i = max(0, (self.maxstring - 3) // 2)
  112.             j = max(0, self.maxstring - 3 - i)
  113.             s = __builtin__.repr(x[:i] + x[len(x) - j:])
  114.             s = s[:i] + '...' + s[len(s) - j:]
  115.         
  116.         return s
  117.  
  118.     
  119.     def repr_long(self, x, level):
  120.         s = __builtin__.repr(x)
  121.         if len(s) > self.maxlong:
  122.             i = max(0, (self.maxlong - 3) // 2)
  123.             j = max(0, self.maxlong - 3 - i)
  124.             s = s[:i] + '...' + s[len(s) - j:]
  125.         
  126.         return s
  127.  
  128.     
  129.     def repr_instance(self, x, level):
  130.         
  131.         try:
  132.             s = __builtin__.repr(x)
  133.         except Exception:
  134.             return '<%s instance at %x>' % (x.__class__.__name__, id(x))
  135.  
  136.         if len(s) > self.maxstring:
  137.             i = max(0, (self.maxstring - 3) // 2)
  138.             j = max(0, self.maxstring - 3 - i)
  139.             s = s[:i] + '...' + s[len(s) - j:]
  140.         
  141.         return s
  142.  
  143.  
  144.  
  145. def _possibly_sorted(x):
  146.     
  147.     try:
  148.         return sorted(x)
  149.     except Exception:
  150.         return list(x)
  151.  
  152.  
  153. aRepr = Repr()
  154. repr = aRepr.repr
  155.